De stack is een werkgebied in het geheugen dat naargelang de eisen van het uitvoerende programma dynamisch in omvang groeit of afneemt. Voor deze fout zijn de volgende oorzaken en oplossingen mogelijk:
Controleer of procedures niet te diep zijn genest. Dit is vooral het geval bij recursieve procedures (dat wil zeggen: procedures die zichzelf oproepen). Zorg dat recursieve procedures juist worden beδindigd. Gebruik het dialoogvenster Opgeroepen procedures om te controleren welke procedures actief zijn (in de stack).
Probeer een aantal variabelen te declareren op moduleniveau. U kunt ook alle variabelen in de procedure als statisch declareren door het sleutelwoord Property, Sub of Function vooraf te laten gaan door Static. Het is ook mogelijk de instructie Static te gebruiken om afzonderlijke variabelen Static binnen uw procedures te declareren.
U krijgt in een procedure sneller toegang tot tekenreeksen met een vaste lengte. Deze tekenreeksen gebruiken echter meer stackruimte dan tekenreeksen met variabele lengte, omdat tekenreeksgegevens zelf ook in de stack worden geplaatst. Probeer een aantal van uw tekenreeksen met vaste lengte te definiδren als tekenreeksen met variabele lengte. Als u tekenreeksen met variabele lengte declareert in een procedure, wordt alleen de reeksdescriptor (niet de gegevens zelf) in de stack geplaatst. U kunt de tekenreeks ook op moduleniveau definiδren, waar de reeks geen stackruimte nodig heeft. Variabelen die op moduleniveau zijn gedeclareerd, zijn standaard Public. De tekenreeks is dus voor alle procedures in de module zichtbaar.
Gebruik het dialoogvenster Opgeroepen procedures om te controleren welke procedures actief zijn (in de stack).
Een gebeurtenisketen wordt veroorzaakt door het activeren van een gebeurtenis die een gebeurtenisprocedure oproept die zich al in de stack bevindt. Een gebeurtenisketen lijkt op een recursieve procedureoproep die niet is beδindigd, maar is minder duidelijk omdat de oproep meestal vanuit Visual Basic heeft plaatsgevonden en niet door een expliciete oproep in de programmacode zelf. Gebruik het dialoogvenster Opgeroepen procedures om te controleren welke procedures actief zijn (in de stack).
Als u het dialoogvenster Opgeroepen procedures wilt weergeven, klikt u op de knop rechts van het vak Procedure in het venster Foutopsporing of kiest u de opdracht Opgeroepen procedures. Selecteer voor aanvullende informatie het desbetreffende item en druk op F1 (in Windows) of op HELP (op de Macintosh).